home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / tutorial / t10 / main.cpp.z / main.cpp
C/C++ Source or Header  |  2002-04-08  |  2KB  |  76 lines

  1. /****************************************************************
  2. **
  3. ** Qt tutorial 10
  4. **
  5. ****************************************************************/
  6.  
  7. #include <qapplication.h>
  8. #include <qpushbutton.h>
  9. #include <qlcdnumber.h>
  10. #include <qfont.h>
  11. #include <qlayout.h>
  12.  
  13. #include "lcdrange.h"
  14. #include "cannon.h"
  15.  
  16.  
  17. class MyWidget: public QWidget
  18. {
  19. public:
  20.     MyWidget( QWidget *parent=0, const char *name=0 );
  21. };
  22.  
  23.  
  24. MyWidget::MyWidget( QWidget *parent, const char *name )
  25.         : QWidget( parent, name )
  26. {
  27.     QPushButton *quit = new QPushButton( "&Quit", this, "quit" );
  28.     quit->setFont( QFont( "Times", 18, QFont::Bold ) );
  29.  
  30.     connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) );
  31.  
  32.     LCDRange *angle = new LCDRange( this, "angle" );
  33.     angle->setRange( 5, 70 );
  34.  
  35.     LCDRange *force  = new LCDRange( this, "force" );
  36.     force->setRange( 10, 50 );
  37.  
  38.     CannonField *cannonField = new CannonField( this, "cannonField" );
  39.  
  40.     connect( angle, SIGNAL(valueChanged(int)),
  41.          cannonField, SLOT(setAngle(int)) );
  42.     connect( cannonField, SIGNAL(angleChanged(int)),
  43.          angle, SLOT(setValue(int)) );
  44.  
  45.     connect( force, SIGNAL(valueChanged(int)),
  46.          cannonField, SLOT(setForce(int)) );
  47.     connect( cannonField, SIGNAL(forceChanged(int)),
  48.          force, SLOT(setValue(int)) );
  49.  
  50.     QGridLayout *grid = new QGridLayout( this, 2, 2, 10 );
  51.     grid->addWidget( quit, 0, 0 );
  52.     grid->addWidget( cannonField, 1, 1 );
  53.     grid->setColStretch( 1, 10 );
  54.  
  55.     QVBoxLayout *leftBox = new QVBoxLayout;
  56.     grid->addLayout( leftBox, 1, 0 );
  57.     leftBox->addWidget( angle );
  58.     leftBox->addWidget( force );
  59.  
  60.     angle->setValue( 60 );
  61.     force->setValue( 25 );
  62.     angle->setFocus();
  63. }
  64.  
  65. int main( int argc, char **argv )
  66. {
  67.     QApplication::setColorSpec( QApplication::CustomColor );
  68.     QApplication a( argc, argv );
  69.  
  70.     MyWidget w;
  71.     w.setGeometry( 100, 100, 500, 355 );
  72.     a.setMainWidget( &w );
  73.     w.show();
  74.     return a.exec();
  75. }
  76.